The invention relates generally to plug-and-play of devices, and more particularly to such plug-and-play that is automatic and performed without user intervention.
Users commonly add new devices to their computers. For example, a user may purchase a new printer and connect it to his or her computer. In the past, the user would have to manually install an appropriate device driver so that the programs running on the computer could utilize the new device. This resulted in a potentially confusing and laborious process, especially for novice users. The user first may have had to initially start the device driver installation process. The user may then also have had to select the exact device for which he or she is installing a device driver. Finally, the user may have had to select an appropriate device driver for the device, from a number of different choices. Failure to perform any of these steps correctly may have likely resulted in the new device not working properly with the user""s computer.
To ameliorate this problem, the concept of plug-and-play has become popular. Generally, and in a non-restrictive manner, plug-and-play is the process by which a computer detects the presence of new devices connected thereto, and automatically installs appropriate device drivers for the new devices. Users typically do not have to manually start the device driver installation process, as they had to before the advent of plug-and-play. Furthermore, the users do not have to select the exact device they are trying to install a device for, because the computer detects the device for them. Finally, desirably the computer also selects the most appropriate device driver for the users. Plug-and-play is generally known in the art. For example, plug-and-play for parallel port printer devices is described in the reference xe2x80x9cPlug and Play Parallel Port Devices,xe2x80x9d version 1.0b, Mar. 15, 1996, and available from the web site www.Microsoft.com.
However, plug-and-play as it exists in the prior art has several disadvantages. First, it requires user intervention. When a new device is connected to a computer, the user is typically required to interact with the computer in order for a device driver for the device to be successfully installed. This interaction may be, for example, the user having to provide confirmation to the computer several times throughout the device driver installation process. Second, plug-and-play is frequently a one-way process, only automatically detecting and installing device drivers for new devices connected to the computer. When devices are disconnected from the computer, the device drivers are frequently not automatically uninstalled. This can cause errors to result, since the programs running on the computer have access to the devices as if they were still connected to the computer.
Because of these disadvantages, plug-and-play as it exists in the prior art is suitable only for client usage, and not server usage. A client is typified by a computer that an end user actively uses. To this extent, it may be acceptable for the end user to have to participate in the device driver installation process, since the end user is usually aware that a new device has been connected to his or her computer. Likewise, because the end user is usually aware when a device has been disconnected from the computer, he or she is likely not to try to access the device from programs running on the computer, even though the programs ostensibly provide such access.
A server, however, may not have an active user, and may have devices connected to it for the benefit of the users of the clients connected to the server. These devices may include, for example, scanners, printers, and fax machines. When a new device is connected to the server, there may not be a knowledgeable user present to correctly participate in the device driver installation process. Furthermore, when a device is disconnected from the server, the end users are likely not to be aware of this, since the server is usually located out of eye""s sight from the clients. For these and other reasons, therefore, there is a need for the present invention.
The invention relates to automatic server-side plug-and-play without user intervention. An automatic plug-and-play component residing on the server is designed to detect connection and disconnection of a device to a port. The port may be, for example, the parallel port, a serial port, or another type of port. The device may be, for example, a printer, a scanner, a fax machine, or another type of device. Without user intervention, the component automatically installs an appropriate driver for the device upon connection of the device to the port. The device is then accessible by clients served by the server. That is, the device is shared among the clients. Similarly, without user intervention, the component automatically uninstalls the driver upon disconnection of the device from the port. The device is then inaccessible by the clients.
The invention provides for advantages not found within the prior art. Unlike the user-involved, client-centric plug-and-play of the prior art, the invention""s plug-and-play is user-independent and server-specific. A device that is connected to the server has a device driver installed for it automatically, without the user having to provide any confirmations or otherwise having to interact in the process. When the device is disconnected, the device driver for the device is automatically uninstalled. This means that users do not have subsequent access to the device from their clients, preventing possible errors from occurring.
Servers, machine-readable media, computer programs, and state transition systems of varying scope are encompassed by the invention. Other aspects, embodiments and advantages of the invention, beyond those described here, will become apparent by reading the detailed description and by referencing the drawings.